import WxService from './plugins/wx-service/WxService'
import { loginModel } from './models/login.js'
const Modellogin = new loginModel()
import { AppModel } from './models/app.js'
const ModelApp = new AppModel()
import { app_version } from './config/config.js'
var gio = require('./utils/gio-minp.js').default
// version 是你的小程序的版本号，发版时请调整
gio('init', 'a756d6dac9d31f11', 'wx0804ce9074b8d441', {
  version: app_version,
  // forceLogin: true,
  followShare: true
})
var fundebug = require('./utils/fundebug.1.3.1.min.js')
fundebug.init({
  apikey: '62af9843c8d796d3d8b1f06735b6b388855643717233fdf00a4e8feb1d705ba5'
})
//app.js
App({
  onLaunch: function(options) {
    if (wx.canIUse('getUpdateManager')) {
      const updateManager = wx.getUpdateManager()
      updateManager.onCheckForUpdate(function(res) {
        // 请求完新版本信息的回调
      })
      updateManager.onUpdateReady(function() {
        // 强制升级
        // updateManager.applyUpdate()
        wx.showModal({
          title: '更新提示',
          content: '新版本已经准备好，是否重启应用？',
          success: function(res) {
            if (res.confirm) {
              // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
              updateManager.applyUpdate()
            } else if (res.cancel) {
              updateManager.applyUpdate()
            }
          }
        })
      })
      updateManager.onUpdateFailed(function() {
        // 新版本下载失败
        console.log('onUpdateFailed')
      })
    } else {
      wx.showModal({
        title: '提示',
        content: '您的微信版本过低，建议升级到最新版本。'
      })
    }
  },
  /*-----------------*/
  getVipInfo: function(cb) {
    const that = this
    const utoken = wx.getStorageSync('utoken')
    console.log('app.js utoken==' + utoken)
    if (!utoken) {
      typeof cb == 'function' && cb(null)
      return false
    }
    if (this.globalData.userInfo) {
      typeof cb == 'function' && cb(this.globalData.userInfo)
    } else {
      Modellogin.getVipInfo({ token: utoken })
        .then(res => {
          that.globalData.userInfo = res.data.userInfo
          // 每次都看下用户是不是没有被绑定
          if (res.data.userInfo.isBrand == 0) {
            // 绑定上一级
            ModelApp.addBossFans()
              .then(res => {
                // 绑定成功更新 App.globalData.userInfo
                ModelApp._getVipInfo().then(res => {
                  that.globalData.userInfo = res.data.userInfo
                })
              })
              .catch(err => {
                console.log(err)
              })
          }
          typeof cb == 'function' && cb(that.globalData.userInfo)
        })
        .catch(err => {
          typeof cb == 'function' && cb(null)
        })
    }
  },
  // 更新用户信息
  updateUserInfo: function() {
    const that = this
    ModelApp._getVipInfo().then(res => {
      that.globalData.userInfo = res.data.userInfo
    })
  },
  //获取规则
  queryAppEnv: function(cb) {
    console.log('获取规则queryAppEnv')
    const that = this
    const params = { version: app_version, type: 2 } //type 标识来源 1:APP,2:小程序
    // setTimeout(() => {
    ModelApp.queryEnv(params)
      .then(res => {
        that.globalData.ruleDetail = res.data.envSign.sign
        if (this.queryEnvCb) {
          this.queryEnvCb(res.data.envSign.sign)
        }
        console.log('that.globalData.ruleDetail==' + that.globalData.ruleDetail)
      })
      .catch(err => {
        console.log(err)
        // 接口错误则返回0，即返回状态为不审核
        that.globalData.ruleDetail = '0'
      })
    // }, 3000)
    // const that = this
    // if (this.globalData.envSign) {
    //   typeof cb == 'function' && cb(this.globalData.envSign)
    // } else {
    //   const params = { version: app_version, type: 2 } //type 标识来源 1:APP,2:小程序
    //   ModelApp.queryEnv(params)
    //     .then(res => {
    //       that.globalData.envSign = res.data.envSign.sign
    //       typeof cb == 'function' && cb(that.globalData.envSign)
    //     })
    //     .catch(err => {
    //       console.log(err)
    //       // 接口错误则返回0，即返回状态为不审核
    //       typeof cb == 'function' && cb(0)
    //     })
    // }
  },
  //获取规则
  queryServiceInfo: function(cb) {
    const _this = this
    // 如果有信息则返回
    if (this.globalData.serviceInfo) {
      typeof cb == 'function' && cb(this.globalData.serviceInfo)
    } else {
      // 访问获取客服信息接口
      ModelApp.getCustomerService()
        .then(res => {
          // 设置app globalData 并返回
          _this.globalData.serviceInfo = res.data.salesServiceList[0]
          typeof cb == 'function' && cb(_this.globalData.serviceInfo)
        })
        .catch(err => {
          console.log(err)
        })
    }
  },
  /*-----------------*/
  globalData: {
    userInfo: null,
    isIphoneX: false,
    mobile: null,
    app_version: app_version,
    ruleDetail: null, // 默认小程序审核中
    levelFlag: true,
    cardFlag: true,
    serviceInfo: null,
    shareTicket: null, // 分享到群
    showTip: false, //是否显示官方提醒
    cancelOrderReason: ['我改变心意不想买了', '买错了，再看看其他的', '买多了，退一件', '更换颜色尺码重新下单', '地址输错了重新下单', '其他'],
    gio: gio,
    bug: fundebug,
    statusBarHeight: wx.getSystemInfoSync()['statusBarHeight']
  },
  onShow: function(options) {
    // 查询环境
    this.queryAppEnv()
    let that = this
    wx.getSystemInfo({
      success: res => {
        // console.log('手机信息res'+res.model)
        // 全局存手机信息
        that.globalData.mobile = res
        // 是否是 iPhone X
        let modelmes = res.model
        if (modelmes.search('iPhone X') != -1) {
          that.globalData.isIphoneX = true
        }
      }
    })
    // 获取群shareTicket
    that.globalData.shareTicket = options.shareTicket
  },
  WxService: new WxService()
})
